<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>超时与网络异常</title>
    <style>
      .box {
        width: 200px;
        height: 100px;
        border: 1px solid #93b;
      }
    </style>
  </head>
  <body>
    <div class="box"></div>
    <button class="test">测试</button>

    <script>
      const test = document.querySelector('.test')
      test.addEventListener('click', function () {
        if (true) return console.log(123)
        console.log(33)
      })
      const box = document.querySelector('.box')

      box.addEventListener('click', function () {
        // 1. 创建对象
        const xhr = new XMLHttpRequest()
        // 超时时间 设置为 2s
        xhr.timeout = 2000
        // 超时回调
        xhr.ontimeout = function () {
          alert('网络异常，请稍后重试！')
        }
        // 网络异常回调
        xhr.onerror = function () {
          alert('你的网络似乎出现了一点问题！')
        }

        // 2.设置请求方法和 url
        xhr.open('GET', 'http://localhost:9000/delay')
        // 3.发送
        xhr.send()
        // 4.处理服务器端返回的结果
        xhr.onreadystatechange = function () {
          if (xhr.readyState === 4 && xhr.status === 200) {
            box.innerHTML = xhr.response
          }
        }
      })
    </script>
  </body>
</html>
